<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const data = [
        {
          入职日期: 43678,
          姓名: '高大山',
          工号: 20089,
          手机号: 13041131879,
          转正日期: 43678,
        },
        {
          入职日期: 43780,
          姓名: '章三',
          工号: 20090,
          手机号: 13041131880,
          转正日期: 43780,
        },
        {
          入职日期: 43600,
          姓名: '李四',
          工号: 20091,
          手机号: 13041131881,
          转正日期: 43600,
        },
        {
          入职日期: 43578,
          姓名: '王武',
          工号: 20092,
          手机号: 13041131882,
          转正日期: 43578,
        },
      ]
      // 第一种方便理解的做法
      function simpleFn(data) {
        // 1. 声明一个空数组，准备接收修改后的数据

        const newData = []

        // 2.开始对老数组中的数据进行处理，赋予新的属性名后放到新数组中

        for (let i = 0; i < data.length; i++) {
          //3.在每次循环的时候准备一个空对象
          const obj = {}

          //4.在新对象里面新增正确属性名的属性，将老数组中的属性值给到新对象中即可
          obj.timeOfEntry = data[i]['入职日期']
          obj.mobile = data[i]['手机号']
          obj.username = data[i]['姓名']
          obj.correctionTime = data[i]['转正日期']
          obj.workNumber = data[i]['工号']

          //5.将新处理完的新对象推进新的空数组即可
          newData.push(obj)
        }

        console.log(newData)
      }

      simpleFn(data)

      // 第二种通用的做法
      function solveFn(data) {
        //1.准备一个用来翻译的对象
        const transformName = {
          入职日期: 'timeOfEntry',
          手机号: 'mobile',
          姓名: 'username',
          转正日期: 'correctionTime',
          工号: 'workNumber',
        }

        //2.创建一个新数组用来接受新的数据
        const newData = []

        //3.循环遍历处理数据
        for (let i = 0; i < data.length; i++) {
          //4.准备一个空数组
          const obj = {}

          //遍历数据对象的属性
          for (let key in data[i]) {
            // 新对象的属性名为翻译对象的key
            // 新对象的属性值为数据中对应key的属性值
            obj[transformName[key]] = data[i][key]
          }

          newData.push(obj)
        }

        console.log(newData)
      }
      solveFn(data)
    </script>
  </body>
</html>
